
const Promise = require('bluebird');
async function main(a, b, callback) {
  const array1 = a.concat(b);
  console.log('a=' + a);
  console.log('b=' + b);
  return callback(null, array1);
}
async function foo(c, d, callback) {
  const array2 = c.concat(d);
  console.log('c=' + c);
  console.log('d=' + d);
  callback(null, array2);
}

async function fu(a,b) {
  // Promise.promisify 将不是 promise 的方法转为 promise 方法(实现同步)， 如果有 .then() 则为异步。
  const function1 = Promise.promisify(main);
  const function2 = Promise.promisify(foo);

  const data1 = await function1(a,b);   // await就相当于Promise.then, 故data就是then的参数
  console.log('data1:' + data1);        // 这里的代码为then中回调的内容
  for(let i = 0; i < data1.length; i++) {
    const data = data1[i];
    // const data2 = await function2(data1, b);
    // console.log('data2:' + data2);
  }
}

const arr1 = [2,3,4,5];
const arr2 = [45,6,7,8];
fu(arr1,arr2);